namespace ScrumSprintMonitor.Infrastructure
{
	#region #using Directives

	using System.Collections.Generic;
	using System.ComponentModel;

	#endregion

	public interface ITeamMemberInfoProvider : INotifyPropertyChanged
	{
		bool IsReadOnly { get; }

		IEnumerable<ITeamMemberInformation> TeamMembers { get; }

		/// <summary>
		/// Retrieves the information for the given team member name.
		/// </summary>
		/// <param name="teamMemberName">The name of the team member, or the special name "unassigned:{0}" where {0} is a team name.</param>
		/// <returns>Returns the team member information object, or null if not found</returns>
		ITeamMemberInformation GetTeamMemberInformation(string teamMemberName);

		void Save();
	}
}